Performance testing of a computer software application has many phases that take a long time, such as problem and success criteria definition, use case definition, test scripting, test data preparation, calibration testing, test operation, and reporting, just to name a few.
Performance tests utilize test servers to act as a client or consumer to a computer software application. The test server has finite resources, including, for example a CPU, network, memory, storage, threads, and processes. Problems can be caused by performing a test too quickly, or driving a test too hot, because the test server operating the performance test may run out of testing resources and may falsely identify performance bottlenecks in the computer software application. In this case, it is the test server that has the performance bottleneck, not the computer software application itself.